"""
检查后端目录下的数据库
创建时间：2025-09-21
作者：开发团队
目的：检查后端目录下的数据库内容
"""

import sys
import os

# 添加项目路径
sys.path.append(os.path.join(os.path.dirname(__file__), 'backend', 'src'))

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from backend.src.models.user import User
from backend.src.core.security import verify_password

def check_backend_database():
    """检查后端目录下的数据库"""
    print("检查后端目录下的数据库...")
    
    try:
        # 使用后端目录下的数据库文件
        DATABASE_URL = "sqlite:///./backend/qev_dev.db"
        print(f"数据库URL: {DATABASE_URL}")
        
        # 创建数据库引擎
        engine = create_engine(DATABASE_URL, echo=False)
        
        # 创建会话
        SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
        db = SessionLocal()
        
        # 查询所有用户
        users = db.query(User).all()
        print(f"数据库中的用户数量: {len(users)}")
        
        for user in users:
            print(f"  用户: ID={user.id}, 用户名={user.username}, 角色={user.role}, 状态={user.status}")
        
        # 特别检查门卫用户及其密码
        guard_users = db.query(User).filter(User.role == "guard").all()
        print(f"\n门卫用户及其密码验证:")
        for user in guard_users:
            print(f"  用户: {user.username}")
            print(f"    ID: {user.id}")
            print(f"    密码哈希: {user.password_hash}")
            
            # 测试常见密码
            common_passwords = ["123456", "guard123", "password", "admin123"]
            for pwd in common_passwords:
                is_valid = verify_password(pwd, str(user.password_hash))
                print(f"    密码 '{pwd}' 验证结果: {is_valid}")
        
        db.close()
        
    except Exception as e:
        print(f"检查数据库出错: {e}")
        import traceback
        traceback.print_exc()

if __name__ == "__main__":
    check_backend_database()